맨위로가기

구글 앱 엔진

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

구글 앱 엔진은 구글에서 제공하는 PaaS(Platform as a Service)로, 웹 애플리케이션 개발 및 호스팅을 위한 플랫폼이다. Go, PHP, Java, Python, Node.js, .NET, Ruby 등 여러 프로그래밍 언어를 지원하며, 통합된 데이터베이스, 백엔드 기능, 사용 할당량 관리 등의 기능을 제공한다. 2008년에 처음 출시되었으며, 아마존 웹 서비스, 마이크로소프트 Azure 등과 경쟁한다.

더 읽어볼만한 페이지

  • 서버리스 컴퓨팅 - 헤로쿠
    헤로쿠는 James Lindenbaum, Adam Wiggins, Orion Henry에 의해 개발되어 세일즈포스닷컴에 인수된 클라우드 플랫폼 서비스이며, 다양한 프로그래밍 언어와 데이터베이스를 지원하고 여러 서비스를 제공하며, 보안 침해와 무료 플랜 중단, 플랫폼 재구축을 겪었다.
  • 서버리스 컴퓨팅 - AWS 람다
    AWS 람다는 서버 관리 없이 코드를 실행하는 아마존 웹 서비스의 서버리스 컴퓨팅 서비스로, 람다 함수는 이벤트에 의해 트리거되어 실행되며 다양한 AWS 서비스와 프로그래밍 언어를 지원한다.
  • 클라우드 플랫폼 - 마이크로소프트 애저
    마이크로소프트 애저는 전 세계 데이터 센터를 통해 600개 이상의 서비스를 제공하는 마이크로소프트의 클라우드 컴퓨팅 플랫폼으로, 다양한 컴퓨팅, 데이터베이스, 스토리지, AI, IoT 기능과 개발자 지원 서비스를 제공하지만 복잡한 가격 모델과 서비스 장애 및 보안 문제가 우려된다.
  • 클라우드 플랫폼 - 헤로쿠
    헤로쿠는 James Lindenbaum, Adam Wiggins, Orion Henry에 의해 개발되어 세일즈포스닷컴에 인수된 클라우드 플랫폼 서비스이며, 다양한 프로그래밍 언어와 데이터베이스를 지원하고 여러 서비스를 제공하며, 보안 침해와 무료 플랜 중단, 플랫폼 재구축을 겪었다.
  • 구글의 서비스 - 유튜브
    유튜브는 2005년 설립되어 다양한 비디오 콘텐츠를 공유하는 세계 최대 온라인 동영상 플랫폼으로 성장, 구글에 인수된 후 다양한 서비스를 출시하고 기술적 발전을 이루었으나, 저작권 문제, 극단주의 콘텐츠 확산, 개인정보보호 논란 등 사회적 문제에 직면해 광고 차단 프로그램 단속 강화 정책을 시행하고 있다.
  • 구글의 서비스 - 구글 검색
    구글 검색은 래리 페이지와 세르게이 브린이 개발한 검색 엔진으로, 페이지랭크 알고리즘을 사용하며 검색 품질 개선을 위한 다양한 업데이트를 진행해 왔으나, 개인 정보 보호, 편향성 등의 문제로 비판받기도 한다.
구글 앱 엔진 - [IT 관련 정보]에 관한 문서
기본 정보
구글 앱 엔진 로고
구글 앱 엔진 로고
개발사구글
최초 출시일2008년 4월 7일
최신 버전1.9.27
최신 버전 출시일2015년 9월 30일
장르서비스형 플랫폼
웹사이트구글 앱 엔진 공식 웹사이트
기술 정보
프로그래밍 언어PHP
파이썬
자바
Go
운영체제리눅스 (glibc)
플랫폼리틀 엔디언 32비트
라이선스사유

2. 지원 언어 및 프레임워크

Go, PHP, Java, Python, Node.js, .NET, Ruby 애플리케이션을 공식적으로 지원하며, "맞춤형 런타임"을 통해 다른 언어도 지원할 수 있다.[4]

구글 앱 엔진에서 실행되는 파이썬 웹 프레임워크에는 장고, 체리파이, 피라미드, 플라스크, 웹2py 및 구글이 직접 작성한 웹 앱 프레임워크 등이 있다.[6] WSGI를 지원하는 모든 파이썬 프레임워크는 애플리케이션을 만드는 데 사용할 수 있다.[7][8]

Java용 SDK는 단독으로 제공되며, 이클립스 플러그인이 구글에서 제공된다. 넷빈즈 및 IntelliJ용 플러그인도 제작되어 Java 개발이 가능하다. 또한 Java를 지원하므로 Java 가상 머신에서 실행되는 Jython, JRuby, Scala 등도 개발할 수 있다.

3. 주요 기능

구글 I/O 2011에서 구글은 지속적으로 실행되고 더 많은 메모리를 소비할 수 있는 ''App Engine Backends''(앱 엔진 백엔드)를 발표했다.[13][14] 백엔드 API는 2014년 3월 13일부로 Modules API(모듈 API)를 선호하여 더 이상 사용되지 않았다.[15]

2011년 10월, 구글은 JDBC 및 DB-API를 지원하는 무(無) 유지보수 SQL 데이터베이스를 선보였다.[16] 이 서비스를 통해 App Engine 애플리케이션으로 관계형 데이터베이스를 생성, 구성 및 사용할 수 있다. 구글 클라우드 SQL은 MySQL 8.0, 5.7 및 5.6을 지원한다.[17]

현재 API를 사용하면 문서 지향적인 Google Cloud Datastore 데이터베이스에서 데이터를 저장하고 검색하고, HTTP 요청을 보내고, 이메일을 보내고, 이미지를 조작하고, 캐싱할 수 있다. 구글 클라우드 SQL[19]은 관계형 MySQL 호환 데이터베이스 백엔드가 필요한 앱 엔진 애플리케이션에 사용할 수 있다.[20]

GAE 개발자는 제한된 API를 사용해야 하는데, 현재 API를 통해 다음 기능을 실현할 수 있다.


  • BigTable이라는 비 관계형 데이터베이스에 데이터 저장 및 추출
  • HTTP 요청 전송
  • 전자 메일 전송
  • 이미지 처리
  • 캐싱
  • cron
  • XMPP 통신

4. 사용 할당량

구글 앱 엔진은 무료 할당량과 유료 할당량을 제공한다. 개발자는 구글 계정을 통해 최대 25개의 무료 애플리케이션과 무제한의 유료 애플리케이션을 등록할 수 있다.[24] 무료 할당량 확장은 요청할 수 있으며, 애플리케이션 개발자는 추가 리소스에 대한 비용을 지불할 수 있다.[25]

무료 할당량은 일일 및 분당 제한을 두며, 하드 리밋은 요청 시간, HTTP 응답 크기, 데이터스토어 항목 크기 등에 제한을 둔다.

4. 1. 무료 할당량 (상세)

할당제한 (하루 기준)
백엔드 인스턴스 시간9시간
프론트엔드 인스턴스 시간28시간
이메일100 (5000 관리자 이메일)
들어오는 대역폭1GB
나가는 대역폭1GB
데이터스토어 스토리지 데이터1GB
데이터스토어 엔티티 읽기50,000
데이터스토어 엔티티 쓰기20,000
데이터스토어 엔티티 삭제20,000
코드 및 정적 파일 스토리지1GB
로그 저장 데이터1GB
검색 API 저장 데이터250MB
검색 API 검색 (분)100분
Blob 스토리지 데이터5GB
XMPP API Stanzas Sent10,000 stanzas
채널 API100 채널 작성
생성 소켓864,000
소켓 데이터 송수신각각 20GB
일일 URLFetch API 호출657,084


4. 2. 하드 리밋 (상세)

할당제한
요청 당 시간일반 요청 시 60초, 태스크에 10분, 백엔드에 무제한
HTTP 응답 크기64MB
데이터스토어 항목 크기1MB



다른 서비스가 사용자가 거의 모든 *NIX 호환 소프트웨어를 설치하고 구성할 수 있도록 하는 반면, 구글 앱 엔진은 개발자가 지원되는 언어, API 및 프레임워크만 사용하도록 요구한다. 현재 API를 사용하면 문서 지향적인 구글 클라우드 데이터스토어 데이터베이스에서 데이터를 저장하고 검색하고, HTTP 요청을 보내고, 이메일을 보내고, 이미지를 조작하고, 캐싱할 수 있다. 구글 클라우드 SQL[19]은 관계형 MySQL 호환 데이터베이스 백엔드가 필요한 앱 엔진 애플리케이션에 사용할 수 있다.[20]

개별 요청은 60초 이상 걸리거나 32MB 이상의 데이터를 반환하는 경우 종료된다. SDK ver.1.4.0 이후부터는 백그라운드 요청의 30초 제한이 없어지고(10분까지 중단 없이 실행), API 호출 크기가 1MB에서 32MB로 증가했다(URLFetch 응답 크기 제한, Memcache의 일괄 get/put 호출, Image API의 request/response, Mail API의 전송 첨부 파일 크기 제한).

5. 제한 사항

구글 앱 엔진(GAE)의 인프라는 애플리케이션을 쉽게 만들 수 있지만, 실행 가능한 애플리케이션 종류에는 제한이 있다. 개발자는 앱 엔진의 파일 시스템에 대해 읽기 전용 권한만 가지며, 애플리케이션은 가상 파일 시스템만 사용할 수 있다.[18]

앱 엔진은 HTTP 요청으로 호출된 코드만 실행할 수 있다. (예약된 백그라운드 작업은 자체 호출 HTTP 요청 허용).[18] 사용자는 파이썬 모듈을 업로드할 수 있지만, 순수 파이썬 모듈이어야 한다. C 및 Pyrex 모듈은 지원되지 않는다.[18]

자바 애플리케이션은 JRE 표준 에디션 클래스 중 일부(JRE 클래스 화이트리스트)만 사용할 수 있다.[18] 이 제한은 앱 엔진 표준 Java8 런타임에는 없다.[18]

서버에서 시작된 프로세스는 요청에 응답하기 위해 60초 이상 지속될 수 없다 (1.4.0 릴리스부터 백그라운드 작업에는 적용되지 않음).[18] 스티키 세션(세션 선호도)은 지원되지 않으며, 복제된 세션만 지원된다. 여기에는 직렬화되는 데이터 양 및 세션 직렬화 시간에 대한 제한이 포함된다.[18]

기존 웹 애플리케이션은 대부분 관계형 데이터베이스가 필요하므로 수정 없이는 GAE에서 실행할 수 없다.

매일, 매분 할당량으로 제한되는 리소스는 다음과 같다.

리소스
대역폭
CPU 사용량
요청 수
병렬 요청 수
API 호출 횟수



개별 요청은 실행에 30초 이상 걸리거나 10MB 이상의 데이터를 반환하면 종료된다.

SDK ver.1.4.0 이후, 백그라운드 요청의 30초 제한이 없어지고(10분까지 중단 없이 실행), API 호출 크기가 1MB에서 32MB로 증가했다. (URLFetch 응답 크기 제한, Memcache의 일괄 get/put 호출, Image API의 request/response, Mail API의 전송 첨부 파일 크기 제한)

6. 이식성 문제

개발자들은 애플리케이션이 앱 엔진에서 이식 가능하지 않을 것이라고 우려하며 기술 종속을 두려워한다.[21] 이에 대응하여, 특히 데이터 저장소와 같이 앱 엔진의 다양한 독점/폐쇄형 API를 위한 오픈 소스 백엔드를 만들기 위한 여러 프로젝트가 진행 중이다.

AppScale은 수정되지 않은 구글 앱 엔진 애플리케이션을 널리 사용되는 공용 및 사설 클라우드 시스템과 온-프레미스 클러스터에 자동으로 배포하고 확장한다.[22] 이는 EC2, 구글 컴퓨트 엔진, Azure 및 기타 클라우드 공급업체에서 Python, Java, PHP 및 Go 애플리케이션을 실행할 수 있다.

Web2py 웹 프레임워크는 SQL 데이터베이스와 구글 앱 엔진 간의 마이그레이션을 제공하지만, 트랜잭션 및 네임스페이스와 같은 몇 가지 앱 엔진 특정 기능을 지원하지 않는다.[23]

쿠버네티스(Kubernetes)는 구글이 개발한 오픈 소스 작업 제어 시스템으로, 도커(Docker)와 같은 오픈 소스 컨테이너화된 애플리케이션이 아마존 웹 서비스(Amazon Web Services), 마이크로소프트 애저(Microsoft Azure) 등과 같은 여러 유형의 인프라에서 실행될 수 있도록 인프라를 추상화한다.

7. GQL과 SQL의 차이점

구글 클라우드 데이터스토어는 SQL과 유사한 구문인 "GQL"(구글 쿼리 언어)을 사용한다. GQL은 조인 문을 지원하지 않으며,[10] select 구문은 단일 테이블에 대해서만 실행 가능하다. 이는 쿼리가 여러 머신에 걸쳐 실행될 때 비효율적이기 때문이다.[26] 대신 ReferenceProperty()영어를 사용하여 일대다(1-N) 및 다대다(N-N) 관계를 생성할 수 있다.[27]

SELECT 구문의 WHERE 절은 단일 열에 대해서만 >, ≤, <, ≥ 연산을 수행할 수 있어, 단순한 WHERE 절만 구성 가능하다. 따라서 관계형 데이터베이스에서 데이터 저장소로 마이그레이션할 때 개발자는 데이터 조작 패러다임의 전환을 요구받게 된다.

구글 앱 엔진(GAE)는 각 데이터 저장소 셀에서 반환되는 최대 행 수를 1000개로 제한한다.

8. 경쟁 서비스

아마존 웹 서비스(Amazon Web Services)는 아마존 서버에서 파일 호스팅 및 코드 실행을 가능하게 하는 애플리케이션 서비스 집합이다.[21]

마이크로소프트의 Azure Services Platform, 세일즈포스의 Force.com도 구글 앱 엔진의 경쟁 서비스이다.[21]

AppScale은 구글 앱 엔진용으로 개발된 애플리케이션을 실행하기 위한 오픈 소스 프레임워크이다.[22] AppScale은 수정되지 않은 구글 앱 엔진 애플리케이션을 널리 사용되는 공용 및 사설 클라우드 시스템과 온-프레미스 클러스터에 자동으로 배포하고 확장한다. EC2, 구글 컴퓨트 엔진, Azure 및 기타 클라우드 공급업체에서 Python, Java, PHP 및 Go 애플리케이션을 실행할 수 있다.

쿠버네티스(Kubernetes)는 구글이 개발한 오픈 소스 작업 제어 시스템으로, 도커(Docker)와 같은 오픈 소스 컨테이너화된 애플리케이션이 아마존 웹 서비스, 마이크로소프트 애저 등과 같은 여러 유형의 인프라에서 실행될 수 있도록 인프라를 추상화한다.

9. 역사


  • 2008년 4월: 프리뷰 릴리스 버전을 공개했다.
  • 2009년 2월: 유료 버전 서비스를 시작했다.
  • 2009년 4월: 자바 애플리케이션을 지원했다.
  • 2011년 5월: Go 언어를 지원했다.

참조

[1] 웹사이트 Introducing Google App Engine + our new blog http://googleappengi[...] 2008-04-07
[2] 웹사이트 Python Runtime Environment - Google App Engine - Google Code https://code.google.[...] 1999-02-22
[3] 서적 Programming Google App Engine: Build and Run Scalable Web Apps on Google's Infrastructure https://archive.org/[...] O'Reilly Media
[4] 웹사이트 Google App Engine Documentation {{!}} App Engine Documentation https://cloud.google[...] 2019-12-03
[5] 웹사이트 Quotas - Google App Engine - Google Code https://cloud.google[...] 1999-02-22
[6] 웹사이트 AppEngineFrameworks - tipfy - The almighty little framework for Google App Engine - Google Project Hosting https://code.google.[...] 2012-02-14
[7] 웹사이트 What Is Google App Engine? - Google App Engine - Google Code https://cloud.google[...] 1999-02-22
[8] 웹사이트 webapp Overview - Google App Engine - Google Code https://cloud.google[...] 1999-02-22
[9] 웹사이트 Uploading and Downloading Data - Google App Engine - Google Code https://cloud.google[...] 1999-02-22
[10] 웹사이트 Campfire One: Introducing Google App Engine (pt. 3) https://www.youtube.[...] 2008-04-07
[11] 웹사이트 Modeling Entity Relationships - Google App Engine — Google Developers https://code.google.[...] 2012-06-26
[12] 웹사이트 Google launches Cloud Firestore, a new document database for app developers https://techcrunch.c[...] 2017-10-03
[13] Youtube Google I/O 2011: App Engine Backends
[14] 웹사이트 Backends Python API Overview - App Engine standard environment for Python - Google Cloud Platform https://cloud.google[...]
[15] 웹사이트 Backends Python API Overview - App Engine standard environment for Python - Google Cloud Platform https://cloud.google[...]
[16] 웹사이트 Google Cloud SQL: your database in the cloud - The official Google Code blog http://googlecode.bl[...] 2011-10-06
[17] 웹사이트 Cloud SQL Features - Cloud SQL Documentation - Google Cloud Platform https://cloud.google[...]
[18] 웹사이트 The JRE Class White List - Google App Engine - Google Developers https://cloud.google[...] 1999-02-22
[19] 웹사이트 Google Cloud SQL Databases - Cloud SQL - Google Cloud Platform https://cloud.google[...]
[20] 웹사이트 Using Google Cloud SQL - App Engine standard environment for Java - Google Cloud Platform https://cloud.google[...]
[21] 웹사이트 Analysis: Google App Engine alluring, will be hard to escape https://arstechnica.[...] Ars Technica 2008-04-09
[22] 뉴스 AppScale Launches As An Open-Source Backup Equivalent To Google App Engine https://techcrunch.c[...] TechCrunch 2013-06-24
[23] 문서 http://web2py.com/bo[...]
[24] 웹사이트 Google App Engine General Questions https://cloud.google[...] 2015-06-18
[25] 웹사이트 Understanding Application Quotas with Google App Engine https://cloud.google[...] 2010-04-16
[26] Youtube Campfire One: Introducing Google App Engine (pt. 3) - YouTube http://www.youtube.c[...]
[27] 문서 Modeling Entity Relationships - App Engine — Google Cloud Platform https://cloud.google[...]
[28] 블로그 Google App Engine Blog: Google Cloud SQL: Your database in the cloud https://googleappeng[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com